<?php
//封装的php文件
//连接数据库的方法
function connectDataBase($dbIP, $dbName, $dbPass, $sel_dbName){
$connectDB = mysql_connect($dbIP, $dbName, $dbPass);
if ($connectDB){
$selectDB = mysql_select_db($sel_dbName);
if ($selectDB){
mysql_query("set names utf8");
return true;
// echo "数据库选择成功";
}else{
echo "数据库选择失败";
}
}else{
echo "数据库服务器连接失败";
}
}
//php的随机函数
function randNum($min,$max){
    $a = range($min,$max);
    shuffle($a);
    return $a[0];
}
//

//get 请求方式 抓包;
function httpGet($url) {
		    // http://blog.sina.com.cn/s/blog_640738130100tsig.html
            // 初始化对象
   		$curl = curl_init();
            // curl_setopt() 设置会话参数
            // CURLOPT_RETURNTRANSFER 结果保存到字符串中
	    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            // CURLOPT_TIMEOUT 超时秒数
	    curl_setopt($curl, CURLOPT_TIMEOUT, 100);
            // 注意:
	    // 为保证第三方服务器与微信服务器之间数据传输的安全性，所有微信接口采用https方式调用，必须使用下面2行代码打开ssl安全校验。
	    // 如果在部署过程中代码在此处验证失败，请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。
	    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
	    curl_setopt($curl, CURLOPT_URL, $url);
	
            // 执行会话
	    $res = curl_exec($curl);
	    curl_close($curl);

    return $res;
  }
  
  //获取acess_token 的方法;
  function getAcess_Token($appId,$appSecret){
	$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appId}&secret={$appSecret}";
	$str = httpGet($url);
	//把JSON字符串转化为数组,加true,是数组,不加 true是对象;
	return json_decode($str,true)['access_token'];//返回access_token字符串;
}

//连接数据库
function connectDataBase($dbIP, $dbName, $dbPass, $sel_dbName){
    $connectDB = mysql_connect($dbIP, $dbName, $dbPass);
    if ($connectDB){
        $selectDB = mysql_select_db($sel_dbName);
        if ($selectDB){
            mysql_query("set names utf8");
            return true;
//            echo "数据库选择成功";
        }else{
            echo "数据库选择失败";
        }
    }else{
        echo "数据库服务器连接失败";
    }
}
//存入数据库;
//appid app秘钥 数据库所在地址 登录数据库的账号名 登录数据库的密码 数据库名字 表名
function getSafeAccessToken($appId,$appSecret,$mysqlIp,$mysqlAdmin,$mysqlPass,$selDB,$formName){
	$connectDB = mysql_connect($mysqlIp,$mysqlAdmin,$mysqlPass);
	mysql_select_db($selDB);
	mysql_query("set names utf8");
	$sql = "SELECT * FROM ".$formName;
	$result = mysql_query($sql);
	if(mysql_num_rows($result)>0){
		$arr = mysql_fetch_assoc($result);
		$oldTime = $arr["time"];
		$newTime = time();
		if($newTime - $oldTime > 7200){
			$token = getAcess_Token($appId,$appSecret);
			$sql = "UPDATE ".$formName." set access=".$token.",  time=".$newTime;
			mysql_query($sql);
		}else{
			$token = $arr["access"];
		}
	}else{
		//第一次时候在数据库中找不到
		$token = getAcess_Token($appId,$appSecret);
		$time = time();
		$sql = "INSERT INTO ".$formName." (access,time) VALUES ('{$token}','{$time}')";
		mysql_query($sql);
	}
	return $token;
}

//抓取post请求的网址,抓取上面的内容信息;
function httpPost($data,$url){
         $ch = curl_init();
         curl_setopt($ch, CURLOPT_URL, $url);
         curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
         curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
         curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
         curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
         $tmpInfo = curl_exec($ch);
         if (curl_errno($ch)) {
          return curl_error($ch);
         }
         curl_close($ch);
         return $tmpInfo;
    }



?>